import java.util.List;

public class LeeCode203 {

    public class ListNode {

        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }
    }

    public class solution {

        public ListNode element(ListNode head, int val) {

            //第一个，第二个都是需要删除的，比如 6，6,6,12,3。要删除6
            while (head != null && head.val == val) {
                ListNode DelNode = head;
                head = DelNode.next;
                DelNode.next = null;
            }

            //链表中所有的节点都是要删除的节点，比如6,6,6,6,6,6，如果链表已经为空
            if (head == null) {
                return null;//or return head
            }

            ListNode pre = head;//假设之前的结点
            while (pre.next != null) {
                if (pre.next.val == val) {
                    ListNode DelNode = pre.next;
                    pre.next = DelNode.next;
                    DelNode.next = null;
                } else {
                    pre = pre.next;
                }
            }
            return head;
        }

    }


}
